SRC = hw8
CC = gcc
LEX = flex
YACC = bison
PS = a2ps
PDF = ps2pdf

all: $(SRC)

$(SRC): lex.yy.o $(SRC).tab.o
	$(CC) lex.yy.o $(SRC).tab.o -o $(SRC)

lex.yy.o: lex.yy.c $(SRC).tab.h
	$(CC) -c lex.yy.c

lex.yy.c: $(SRC).l
	$(LEX) $(SRC).l

$(SRC).tab.o: $(SRC).tab.c $(SRC).tab.h
	$(CC) -c $(SRC).tab.c

$(SRC).tab.c: $(SRC).y
	$(YACC) -d $(SRC).y

$(SRC).tab.h: $(SRC).y
	$(YACC) -d $(SRC).y

print: $(SRC).l.pdf $(SRC).y.pdf
	
$(SRC).l.ps: $(SRC).l
	$(PS) -o $(SRC).l.ps $(SRC).l

$(SRC).y.ps: $(SRC).y
	$(PS) -o $(SRC).y.ps $(SRC).y

$(SRC).l.pdf: $(SRC).l.ps
	$(PDF) $(SRC).l.ps

$(SRC).y.pdf: $(SRC).y.ps
	$(PDF) $(SRC).y.ps

clean:
	-rm $(SRC).tab.[hco] lex.yy.c lex.yy.o $(SRC) $(SRC).l.ps $(SRC).y.ps $(SRC).l.pdf $(SRC).y.pdf
